iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

Rails 手工打造自己的部落格 系列 第 6

Rails 手工打造自己的部落格 06 - Rails 目錄結構

  • 分享至 

  • xImage
  •  

當我們 new 出一個專案後,
Rails 會幫我們建好一個目錄結構, 今天來大致介紹一下每個資料夾的作用

/app:

application 的縮寫
非常重要的目錄,用於組織應用程式的主要邏輯和功能。
90% 核心的程式都放在這。(包含了整個MVC的架構)
包含子資料夾:

  1. assets(靜態資源):
    包含靜態檔案,如 CSS、JavaScript、圖片等。這些檔案可以直接提供給瀏覽器,用於網頁的設計和功能。
  2. channels(通道):
    用於管理 WebSocket 通訊相關的類別,可以用於實現即時通訊功能。
  3. controllers(控制器):
    這裡包含所有的控制器,控制器是應用程式的主要邏輯部分之一。控制器處理請求並回應相應的內容。
    4.helpers(輔助方法):
    包含用於輔助視圖和控制器的方法,通常用於共享程式邏輯。
  4. javascript(JavaScript 程式碼):
    • controllers(控制器相關 JavaScript): 這裡可以包含與控制器相關的 JavaScript 程式碼,通常用於處理與控制器相關的行為和功能。
  5. jobs(作業):
    這裡通常包含與後台作業和非同步任務相關的類別,例如使用 Active Job 實現的背景任務。
  6. mailers(郵件):
    包含用於發送郵件的類別和視圖。在這裡,您可以定義和管理電子郵件的內容和佈局。
  7. models(模型):
    模型目錄包含定義應用程式資料模型的地方。模型用於管理應用程式的資料庫操作和業務邏輯。
  8. views(視圖):
    這裡包含與視圖相關的模板,通常使用 .html.erb(Embedded Ruby)檔,來呈現。
    .html.erb 檔案允許在標準 HTML 中使用 Ruby 程式碼。

/bin:資源庫

包含與應用程式相關的執行檔案和命令。

  1. bundle:
    是 Ruby 的套件管理工具 Bundler 的命令行介面。
    可以使用 bundlebundle install 來安裝、更新、移除應用程式的 gem 依賴。
  2. importmap:
    用於管理 Importmap 的相關程式碼。
    Importmap 是 Rails 7 引入的新功能,用於管理前端 JavaScript 模組的載入和引用。

/config:

應用程式的配置設定,如路由、資料庫配置、環境設定等。

  1. routes (路由/路徑)
  2. environments (環境設定) :
    1. development開發環境
    2. production發表環境
    3. test測試環境

/db:

放置資料庫相關的文件

  1. schema 定義資料庫綱要。
    定義了資料庫中的表格、欄位、索引等結構。
  2. migration 資料庫遷移檔。
    用於管理應用程式的資料庫模式變更的機制。

/lib:

包含自定義的程式庫和模組。

/log:

放置此專案的日誌檔案 (各個環境、I18n)。

/public:

包含公開存取的檔案,大多是靜態檔案:(404、422、500 錯誤顯示畫面)或是圖片。

/test:

包含測試相關的文件,如單元測試、整合測試等。

/tmp:

放置臨時或暫時用的文件。包含暫時性的檔案,如快取、PID 檔案等。

/vendor:

包含第三方套件、程式庫和工具。
(買了某套後台的模板,哪這些程式就是放在這)。

/Gemfile:

定義應用程式的 gem 依賴和版本,包括安裝的套件都會列在這裡。

/Gemfile.lock:

當套件放置 /Gemfile 資料夾時,在終端機輸入 bundle install (可簡化 bundle),會在此生成此套件的基本設定檔。

/gitignore:

這是指利用 git 做版本控制時,不想被 git 追蹤的話,將檔案名稱放置的文件。
例如:跟外網申請服務時,需要使用到的金鑰。

/Rakefile:

用來載入 rake 命令包含的任務。

/README:

說明此專案的目的、使用說明、注意事項。


上一篇
Rails 手工打造自己的部落格 05 - 創建專案
下一篇
Rails 手工打造自己的部落格 07 - MVC 設計
系列文
Rails 手工打造自己的部落格 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言